#ifndef CONFIG_H
#define CONFIG_H
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
#define MAX_KEY_LENGTH 64
#define MAX_VALUE_LENGTH 256
#define MAX_LINE_LENGTH 512
/*
  ConfigItem
    Describle the config's item
  BeginnerC
 */
typedef struct ConfigItem
{
    char key[MAX_KEY_LENGTH];
    char value[MAX_VALUE_LENGTH];
    struct ConfigItem *next;
}ConfigItem;
/*
  Config
    The list to store the config item
  BeginnerC
 */
typedef struct Config
{
    ConfigItem *first;
    ConfigItem *last;
}Config;
int ReadLine(char buffer[], int buffer_length, FILE *fp);
ConfigItem *AnalyseLine(const char *line);
int AddConfigItem(Config *config, ConfigItem *item);
char* QueryConfig(Config *config,const char *key);
int FreeConfig(Config *config);
Config* InitConfig();
Config* LoadConfig(const char *file_name);
#endif
